package org.finmanager.core;

import java.awt.*;

/**
 * Created by Kelvin on 3/6/14.
 */

/*
This is a class for definition of some constants
 */

public final class Constants {
	private Constants() {
		// Private constructor restricts instantiation
	}

	public static final String APP_NAME = "FinManager";
	public static final int APP_WIDTH = 1024;
	public static final int APP_HEIGHT = 768;

	public static final String ITEM_INPUT_UI_NAME = "Item Manager";
	public static final int ITEM_INPUT_UI_WIDTH = 400;
	public static final int ITEM_INPUT_UI_HEIGHT = 250;
	public static final boolean ITEM_INPUT_UI_RESIZABLE = false;
	public static final String[] ITEM_TABLE_COLUMN_NAME = {"Name", "Date", "Amount", "Category"};

	public static final String CATEGORY_MANAGER_NAME = "Category Manager";
	public static final int CATEGORY_MANAGER_WIDTH = 280;
	public static final int CATEGORY_MANAGER_HEIGHT = 300;
	public static final boolean CATEGORY_MANAGER_RESIZABLE = false;
	public static final String[] CATEGORY_TABLE_COLUMN_NAME = {"Category", "Fav", "Filter"};

	public static final String CATEGORY_INPUT_UI_NAME = "Add new category";
	public static final int CATEGORY_INPUT_UI_WIDTH = 300;
	public static final int CATEGORY_INPUT_UI_HEIGHT = 160;
	public static final boolean CATEGORY_INPUT_UI_RESIZABLE = false;

	public static final String ITEM_FILTER_UI_NAME = "Filter";
	public static final int ITEM_FILTER_UI_WIDTH = 300;
	public static final int ITEM_FILTER_UI_HEIGHT = 300;
	public static final boolean ITEM_FILTER_UI_RESIZABLE = false;

	// Budgets
	public static final String[] BUDGET_TABLE_COLUMN_NAME = {"Category", "Budget Amount", "Remaining Budget", "Remaining", "Month"};
	public static final String BUDGET_INPUT_UI_NAME = "Add new budget";
	public static final int BUDGET_INPUT_UI_WIDTH = 400;
	public static final int BUDGET_INPUT_UI_HEIGHT = 252;
	public static final boolean BUDGET_INPUT_UI_RESIZABLE = false;

	/*
	Constants for data io
	 */
	public static final String MAIN_DATA_FILE_NAME = "data.txt";
	public static final String CATEGORY_DATA_FILE_NAME = "categories.txt";
	public static final String BUDGET_DATA_FILE_NAME = "budget.txt";

	/*
	Constants for table
	 */

	public static final int MAX_FAVOURITE_CATEGORIES = 5;

	public static final String DATE_FORMAT = "dd-MM-yyyy";
	public static final String DATE_FORMAT_MONTH = "M-yyyy";

	public static final Color TABLE_COLUMN_COLOR1 = Color.WHITE;
	public static final Color TABLE_COLUMN_COLOR2 = new Color(240, 240, 240);
}
